/** 
 * @date 06/05/2013
 * @author Renet_Pourriau
 * @version 1.0
 */

package temporel;

/**
 * This class represent timeslot
 */
public class CreneauHoraire {

	private Heure heureDebut;

	private Heure heureFin;

	/**
	 * this is the constructor of timeslot
	 * @param heureDebut
	 * @param heureFin
	 */
	public CreneauHoraire(Heure heureDebut, Heure heureFin) {
		if (estCorrect(heureDebut, heureFin)) {	
			this.setHeureDebut(heureDebut);
			this.setHeureFin(heureFin);
		}
	}

	/**
	 * @return the heureDebut
	 */
	public Heure getHeureDebut() {
		return heureDebut;
	}

	/**
	 * @param heureDebut
	 *            the heureDebut to set
	 */
	public void setHeureDebut(Heure heureDebut) {
		Heure heureFin2 = this.getHeureFin();
		if (heureFin2 == null || heureDebut.estAvant(heureFin2)) {
			this.heureDebut = heureDebut;
		}
	}

	/**
	 * @return the heureFin
	 */
	public Heure getHeureFin() {
		return heureFin;
	}

	/**
	 * @param heureFin
	 *            the heureFin to set
	 */
	public void setHeureFin(Heure heureFin) {
		Heure heureDebut2 = this.getHeureDebut();
		if (heureDebut2 == null || heureFin.estApres(heureDebut2)) {
			this.heureFin = heureFin;
		}
	}

	/**
	 * @return String representing timeslot
	 */
	public String getCreneau() {
		if (this.getHeureDebut() == null || this.getHeureFin() == null) {
			return null;
		}
		return this.getHeureDebut().getHeure()+" - "+this.getHeureFin().getHeure();
	}
	
	/**
	 * @param heureDebut
	 * @param heureFin
	 * @return true if the timeslot is correct
	 */
	public boolean estCorrect(Heure heureDebut, Heure heureFin) {
		if (heureDebut != null && heureFin != null) {
			return heureDebut.estAvant(heureFin);
		}
		return false;
	}

}